Autentisering og autorisering
Autentisering å sjekke HVEM du er, autorisering er å sjekke HVA DU HAR TILGANG TIL. På systemer ITK forvalter gjøres autentisering av Kerberos og Samba og autorisering av ITKACL 2.
TL;DR (Hvordan fikse din utviklingsinsans)
Opprette Kerberos-keytab
Dersom det er en vhost som ikke har noe ITKACL fra før av må en keytab opprettes.
- ssh til voff som root
samba-tool spn add HTTP/<subdomain>.samfundet.no cirkus$ $-tegnet betyr at det er snakk om en maskinkonto
- kontroller at keytaben ble lagt til
samba-tool spn list cirkus$
- Lag og kopier en .keytab fil til Cirkus
samba-tool domain exportkeytab <subdomain>.keytab --principal=HTTP/<subdomain>.samfundet.no samba-tool domain exportkeytab <subdomain>.keytab --principal=HTTP/cirkus.samfundet.no scp <subdomain>.keytab root@cirkus:/etc/apache2/krb5/<subdomain>.keytab
- SSH deg over til Cirkus
- Endre eierskap av filen for å gjøre den leselig av Apache
chown <bruker>:<gruppe> /etc/apache2/krb5/<subodmain>.keytab
Se guiden til hvordan man skal utvikle din spesifikke insans for hvilken bruker og gruppe som skal ha tilgang til denne filen.
Legge til autentisering og autorisering for en Apache instans
TL;DR : Legg til dette i din Apache config:
<Location /> AuthType GSSAPI AuthName "<beskrivelse av instansen>" GssapiCredStore keytab:/etc/apache2/krb5/<subdomain>.keytab GssapiCredStore cache:MEMORY:user_ccache GssapiBasicAuth on GssapiAllowedMech krb5 GssapiBasicAuthMech krb5 GssapiNegotiateOnce On # Send brukere i Windows rett til basic auth, unntatt Firefox BrowserMatch Windows(?!.*Firefox) gssapi-no-negotiate Require itkacl <acl-sti> </Location>
Forklaring
Autoriseringen benytter seg av gssapi. Kildekode og dokumentasjon finnes her. Noen av linjene forklares under:
- "<Location />" spesifiserer hvilken bane autentiseringen og autoriseringen gjelder for. I dette tilfellet er banen satt til '/'. Dette betyr at den er gyldig for alle baner. Dersom man f.eks. ønsker egnen autorisering for en /admin side, kan man i tillegg til det over skrive:
<Location /admin> Require itkacl <acl-sti for de som skal ha tilgang til banen> </Location>
- "AuthType GSSAPI" spesifiserer at området skal bruke GSSAPI-autentisering (dvs. mod_auth_gssapi).
- "GssapiCredStore keytab:/etc/apache2/krb5/amsit.keytab" spesifiserer filen til vhostens Kerberos-keytab, som finnes på cirkus. Denne er nødvendig for at cirkus skal kunne verifisere KDCen.
- "AuthName" er et navn som kommer opp idet brukeren blir spurt om brukernavn og passord. Utover dette har det ingen betydning, men du kan jo skrive noe vettugt her uansett.
- "Require itkacl <acl-sti>" spesifiserer at ITKACL-autentisering (mod_authz_itkacl) skal brukes, og hvilket ACL-område man skal autentisere mot. Her må man selvsagt bytte ut området med den man er interessert i å autentisere mot.
PAM (pam_itkacl)
PAM brukes til mye rart, men det mest aktuelle for vår del er nok å begrense tilgangen til å logge inn på bokser (så ikke f.eks. hvem som helst har tilgang til å logge inn på cirkus). Det er skrevet en begynnende PAM-modul; sleng følgende i f.eks. /etc/pam.d/common-account eller /etc/pam.d/ssh, alt ettersom:
account required pam_itkacl.so realm='/login/itk-workstations'
realm= er selvsagt påkrevd, og er ACL-stien du vil autentisere mot.
Lenker: Start, itkaclbruk
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2022-10-16 15:02 | Revisjon: 3 (historie, blame) | Totalt: 1905 kB | Rediger